In recent years, efficient audio signal compression methods encode spectral data of quantized audio signals by using a Huffman encoding scheme. The standardized body, Motion Picture Experts Group (MPEG), discloses conventional data compression methods in their standards such as, for example, the MPEG-2 advanced audio coding (AAC) standard (see ISO/IEC 13818-7) and the MPEG-4 AAC standard (see ISO/IEC 14496-3). These standards are collectively referred to herein as the MPEG standard.
According to the MPEG standard, an input pulse code modulation (PCM) signal may be converted through a modified discrete cosine transform (MDCT) operation into 1024 elements of frequency spectral data that are quantized (converted into integers) using a non-linear quantization method. The 1024 elements of quantized frequency spectral data are then grouped into a number of scale factor bands (SFBs). Each SFB contains a multiple of 2 or 4 quantized spectral coefficients. The SFBs may also be grouped into sections.
Next, the quantized and grouped frequency spectral data is Huffman-encoded. The Huffman encoding operation is performed based on Huffman codebooks. Each section is encoded using a single Huffman codebook selected among eleven Huffman codebooks provided by the MPEG standard. Each Huffman codebook includes indexes of data items to be encoded, corresponding “codewords” (hexadecimal representations of encoded data items) and the code length of each codeword.
According to the MPEG standard, Huffman codebooks that can be selected for a section are limited by the largest absolute value (LAV) of the spectral data within the section. That is, the LAV of the spectral data has to be smaller than the LAV associated with a Huffman codebook that can be used for the section. Based on the MPEG standard, if the LAV of the spectral data within the section is less than 2, then the candidate Huffman codebooks are codebooks 0, 1 and 2. If the LAV of the spectral data within the section is less than 3, then candidate Huffman codebooks are codebooks 0 through 4. If the LAV of the spectral data within the section is less than 5, then candidate Huffman codebooks are codebooks 0 through 6. If the LAV of the spectral data within the section is less than 8, then candidate Huffman codebooks are codebooks 0 through 8. If the LAV of the spectral data within the section is less than 13, then candidate Huffman codebooks are codebooks 0 through 10. Finally, if the LAV of the spectral data within the section is greater, or equal to 13, then candidate Huffman codebooks are codebooks 0 through 11.
Once the candidate Huffman codebooks are selected, the code length which would result when encoding data with each candidate Huffman codebook is determined and the results are compared. The candidate Huffman codebook that gives the smaller code length is selected and used for Huffman-encoding of the spectrum data in the section.
The above-described conventional method of selecting the optimal Huffman codebook for a section takes a large amount of computation because the operation of calculating the index and obtaining a corresponding code length must be performed separately for each of the candidate Huffman codebooks.